package com.project.mapper;

import com.project.bean.GradeBean;
import com.project.bean.UserBean;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface IUserMapper {
    /**
     * 登录
     * @param userName 账号
     * @param password 密码
     * @return UserBean 登录用户对象 { 编号，用户名，密码} 同时得到权限列表
     */
    UserBean login(@Param("userName") String userName, @Param("password") String password);

    /**
     * 根据权限名、用户id，查询用户权限
     * @param userId 用户id
     * @param gradeName 权限名
     * @return Boolean 是否有该权限
     */
    UserBean findByItem(@Param("userId")Integer userId, @Param("gradeName")String gradeName);

    /**
     * 添加用户
     * @param userBean 用户对象 { 编号，用户名，密码 }
     */
    void addUser( UserBean userBean);

    /**
     * 添加该用户的权限
     * @param userId 用户id
     * @param gradeIdArray 权限
     */
    void addGrade(@Param("userId")Integer userId, @Param("gradeIdArray")int[] gradeIdArray);

    /**
     * 按编号查询用户，同时查询该用户的权限
     * @param userId 用户id
     * @return 用户对象  { 编号，用户名，密码 }，用户权限名
     */
    UserBean findById(Integer userId);


    /**
     * 修改用户权限
     * @param userId 用户id
     * @param gradeIdArray 新的权限数组
     */
    void updGrade(@Param("userId")Integer userId,@Param("idArray")int[] gradeIdArray);

}
